package com.hxj.admin.szjy.service;

import com.hxj.admin.szjy.pojo.command.ProjectSaveToNextCommand;
import com.hxj.admin.szjy.pojo.command.StartNewProjectCommand;
import com.hxj.admin.szjy.pojo.query.ProjectQuery;
import com.hxj.common.core.pojo.bo.AjaxResult;
import com.hxj.common.core.pojo.bo.RestResult;
import com.hxj.flowable.domain.dto.FlowTaskDto;

import java.util.Optional;

/**
 * @Author hxj
 * @Date 2024/10/26 15:27
 * @Description 测试交易公开流程服务
 */
public interface ProjectService {

    /**
     * 创建新立项交易
     */
    RestResult startNewProject(StartNewProjectCommand command);

    /**
     * 保存表单数据 并提交到下一步
     */
    RestResult saveAndCompleteToNext(ProjectSaveToNextCommand command);

    /**
     * 提交到下一步
     */
    RestResult completeToNext(ProjectSaveToNextCommand command);

    /**
     * 撤回到上一步
     */
    RestResult returnToLast(ProjectSaveToNextCommand command) throws Exception;

    /**
     * 查看项目基本信息 包括流程状态
     * @param query
     * @return
     */
    Optional<FlowTaskDto> getProjectBaseInfo(ProjectQuery query);



}
